package com.kamistoat.meimeimall.meimeimallpayment.dao;

import com.kamistoat.meimeimall.meimeimallpayment.entity.PaymentBillJoinEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface PaymentBillJoinDao {
    /**
     * 创建指定名称的表
     *
     * @param tableName
     */
    void createTableWithName(@Param("tableName") String tableName);

    /**
     * 删除指定名称的表
     *
     * @param tableName
     */
    void dropTableWithName(@Param("tableName") String tableName);

    /**
     * 关联本地交易记录和第三方账单数据
     *
     * @param joinTableName 关联表名
     * @param billTableName 第三方账单表名
     * @return 操作行数
     */
    Long joinPaymentAndBill(@Param("joinTableName") String joinTableName,
                            @Param("billTableName") String billTableName,
                            @Param("startTime") Date startTime,
                            @Param("endTime") Date endTime);

    /**
     * 指定关联大表中分批取关联数据
     */
    List<PaymentBillJoinEntity> selectPage(@Param("joinTableName") String joinTableName,
                                           @Param("limit") Integer limit,
                                           @Param("pageOffset") Long pageOffset);
}
